#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <vector>
#include <list>
//#include <queue>

#include "stack.h"
#include "queue.h"
#include "priority_queue.h"
using namespace std;

int main()
{
	qfw::stack<int, vector<int>> st;
	st.push(1);
	st.push(2);
	st.push(3);
	st.push(4);
	st.push(5);

	while (!st.empty())
	{
		cout << st.top() << " ";
		st.pop();
	}
	cout << endl;
	qfw::queue<int, list<int>> qu;
	qu.push(1);
	qu.push(2);
	qu.push(3);
	qu.push(4);
	qu.push(5);

	while (!qu.empty())
	{
		cout << qu.front() << " ";
		qu.pop();
	}

	cout << endl;
	int arr[] = { 3, 4,2,5,6 };
	qfw::priority_queue<int, vector<int>, qfw::less<int>> pq(arr, arr + sizeof(arr)/sizeof(int));
	//pq.push(4);
	//pq.push(2);
	//pq.push(6);
	//pq.push(4);
	//pq.push(1);
	//pq.push(9);
	//pq.push(8);


	while (!pq.empty())
	{
		cout << pq.top() << " ";
		pq.pop();
	}
	return 0;
}
